﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DHISInteroperability.Resources
{

    
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://dhis2.org/schema/dxf/2.0")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "http://dhis2.org/schema/dxf/2.0", IsNullable = false)]
    public partial class dataSet
    {

        private byte expiryDaysField;

        private byte versionField;

        private bool approveDataField;

        private bool renderHorizontallyField;

        private bool externalAccessField;

        private bool fieldCombinationRequiredField;

        private bool skipOfflineField;

        private bool skipAggregationField;

        private bool validCompleteOnlyField;

        private string publicAccessField;

        private bool noValueRequiresCommentField;

        private bool notifyCompletingUserField;

        private byte timelyDaysField;

        private bool renderAsTabsField;

        private bool allowFuturePeriodsField;

        private bool dataElementDecorationField;

        private string periodTypeField;

        private string displayNameField;

        private bool mobileField;

        private dataEntryForm dataEntryFormField;

        private access accessField;

        private categoryCombo categoryComboField;

        private user userField;

        private object organisationUnitGroupsField;

        private object sectionsField;

        private dataElement[] dataElementsField;

        private organisationUnit[] organisationUnitsField;

        private indicator[] indicatorsField;

        private object attributeValuesField;

        private object compulsoryDataElementOperandsField;

        private object userGroupAccessesField;

        private string idField;

        private string createdField;

        private string nameField;

        private string hrefField;

        private string lastUpdatedField;

        private string shortNameField;

        
        public byte expiryDays
        {
            get
            {
                return this.expiryDaysField;
            }
            set
            {
                this.expiryDaysField = value;
            }
        }

        
        public byte version
        {
            get
            {
                return this.versionField;
            }
            set
            {
                this.versionField = value;
            }
        }

        
        public bool approveData
        {
            get
            {
                return this.approveDataField;
            }
            set
            {
                this.approveDataField = value;
            }
        }

        
        public bool renderHorizontally
        {
            get
            {
                return this.renderHorizontallyField;
            }
            set
            {
                this.renderHorizontallyField = value;
            }
        }

        
        public bool externalAccess
        {
            get
            {
                return this.externalAccessField;
            }
            set
            {
                this.externalAccessField = value;
            }
        }

        
        public bool fieldCombinationRequired
        {
            get
            {
                return this.fieldCombinationRequiredField;
            }
            set
            {
                this.fieldCombinationRequiredField = value;
            }
        }

        
        public bool skipOffline
        {
            get
            {
                return this.skipOfflineField;
            }
            set
            {
                this.skipOfflineField = value;
            }
        }

        
        public bool skipAggregation
        {
            get
            {
                return this.skipAggregationField;
            }
            set
            {
                this.skipAggregationField = value;
            }
        }

        
        public bool validCompleteOnly
        {
            get
            {
                return this.validCompleteOnlyField;
            }
            set
            {
                this.validCompleteOnlyField = value;
            }
        }

        
        public string publicAccess
        {
            get
            {
                return this.publicAccessField;
            }
            set
            {
                this.publicAccessField = value;
            }
        }

        
        public bool noValueRequiresComment
        {
            get
            {
                return this.noValueRequiresCommentField;
            }
            set
            {
                this.noValueRequiresCommentField = value;
            }
        }

        
        public bool notifyCompletingUser
        {
            get
            {
                return this.notifyCompletingUserField;
            }
            set
            {
                this.notifyCompletingUserField = value;
            }
        }

        
        public byte timelyDays
        {
            get
            {
                return this.timelyDaysField;
            }
            set
            {
                this.timelyDaysField = value;
            }
        }

        
        public bool renderAsTabs
        {
            get
            {
                return this.renderAsTabsField;
            }
            set
            {
                this.renderAsTabsField = value;
            }
        }

        
        public bool allowFuturePeriods
        {
            get
            {
                return this.allowFuturePeriodsField;
            }
            set
            {
                this.allowFuturePeriodsField = value;
            }
        }

        
        public bool dataElementDecoration
        {
            get
            {
                return this.dataElementDecorationField;
            }
            set
            {
                this.dataElementDecorationField = value;
            }
        }

        
        public string periodType
        {
            get
            {
                return this.periodTypeField;
            }
            set
            {
                this.periodTypeField = value;
            }
        }

        
        public string displayName
        {
            get
            {
                return this.displayNameField;
            }
            set
            {
                this.displayNameField = value;
            }
        }

        
        public bool mobile
        {
            get
            {
                return this.mobileField;
            }
            set
            {
                this.mobileField = value;
            }
        }

        
        public dataEntryForm dataEntryForm
        {
            get
            {
                return this.dataEntryFormField;
            }
            set
            {
                this.dataEntryFormField = value;
            }
        }

        
        public access access
        {
            get
            {
                return this.accessField;
            }
            set
            {
                this.accessField = value;
            }
        }

        
        public categoryCombo categoryCombo
        {
            get
            {
                return this.categoryComboField;
            }
            set
            {
                this.categoryComboField = value;
            }
        }

        
        public user user
        {
            get
            {
                return this.userField;
            }
            set
            {
                this.userField = value;
            }
        }

        
        public object organisationUnitGroups
        {
            get
            {
                return this.organisationUnitGroupsField;
            }
            set
            {
                this.organisationUnitGroupsField = value;
            }
        }

        
        public object sections
        {
            get
            {
                return this.sectionsField;
            }
            set
            {
                this.sectionsField = value;
            }
        }

        
        [System.Xml.Serialization.XmlArrayItemAttribute("dataElement", IsNullable = false)]
        public dataElement[] dataElements
        {
            get
            {
                return this.dataElementsField;
            }
            set
            {
                this.dataElementsField = value;
            }
        }

        
        [System.Xml.Serialization.XmlArrayItemAttribute("organisationUnit", IsNullable = false)]
        public organisationUnit[] organisationUnits
        {
            get
            {
                return this.organisationUnitsField;
            }
            set
            {
                this.organisationUnitsField = value;
            }
        }

        
        [System.Xml.Serialization.XmlArrayItemAttribute("indicator", IsNullable = false)]
        public indicator[] indicators
        {
            get
            {
                return this.indicatorsField;
            }
            set
            {
                this.indicatorsField = value;
            }
        }

        
        public object attributeValues
        {
            get
            {
                return this.attributeValuesField;
            }
            set
            {
                this.attributeValuesField = value;
            }
        }

        
        public object compulsoryDataElementOperands
        {
            get
            {
                return this.compulsoryDataElementOperandsField;
            }
            set
            {
                this.compulsoryDataElementOperandsField = value;
            }
        }

        
        public object userGroupAccesses
        {
            get
            {
                return this.userGroupAccessesField;
            }
            set
            {
                this.userGroupAccessesField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string id
        {
            get
            {
                return this.idField;
            }
            set
            {
                this.idField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string created
        {
            get
            {
                return this.createdField;
            }
            set
            {
                this.createdField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string href
        {
            get
            {
                return this.hrefField;
            }
            set
            {
                this.hrefField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lastUpdated
        {
            get
            {
                return this.lastUpdatedField;
            }
            set
            {
                this.lastUpdatedField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string shortName
        {
            get
            {
                return this.shortNameField;
            }
            set
            {
                this.shortNameField = value;
            }
        }
    }

}
